<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js运算符</title>
</head>
<body>
<script>
    /*
    * 一元运算符：
    * ++ -- 自增自减
    * ++在前，先自增后赋值
    * ++在后，先赋值后自增
    * +(-)正负号：
    * 在js中，如果运算数不是运算符要求的类型，那么js引擎会自动将运算数进行类型转换
    * 字符串转number：数值类string转number，按照字面值转；如果不是数值，则转为NaN。NaN与任何数值运算，结果仍是NaN
    * boolean转number：true为1，false为0；
    * null转number:NaN
    * undefined转number：NaN
    *
    * */
    /*
    * 算术运算符：
    * + - * / %和java一样
    *赋值运算符
    * =
    * */
    var a = 3;
    var b = 5;
    var c=a;
/*    document.write(a + b + "<br>");
    document.write(a - b + "<br>");
    document.write(a * b + "<br>");
    document.write(a / b + "<br>");
    document.write(a % b + "<br>");
    document.write(a % c + "<br>");*/
    /*
    * 比较运算符：
    * 类型相同：直接比较，
    *       字符串：按照字典顺序比较，按位逐一比较，直到得出大小为止。
    * 类型不同：先进行类型转换，再比较
    * === 先比较类型，类型不同为false；
    *
    * */
    var d=4;
    var e=5;
    var f="ased";
    var g="aesd";
/*    document.write((d> e));
    document.write((f <g)+"<br>");
    document.write(("123"<123)+"<br>")
    document.write(("123"==123)+"<br>")
    document.write(("123"===123)+"<br>")*/
    /*
    * 逻辑运算符 && || !
    * 其他类型转boolean
    *           number转boolean 0、NaN为false，非0为true
    *           string转boolean:空字符串为false，其余字符串为true
    *           null，undefined转boolean
    *           对象转boolean：所有对象都为true
    * */
    var aa=3;
    var bb=0;
    var cc=NaN;
/*    document.write(!!aa + "<br>");
    document.write(!!bb + "<br>");
    document.write(!!cc + "<br>");*/
    var dd="streoo";
    var gg="";
    var ee=null;
    var ff=undefined;
/*    document.write(!!dd + "<br>");
    document.write(!!gg + "<br>");
    document.write(!!ee + "<br>");
    document.write(!!ff+ "<br>");*/
    /*
    * 三元运算符
    *
    * */
    var hh =aa>bb?1:0;
    document.write(hh);
</script>
</body>
</html>